home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Grafik & Text / OzTeX3.0 / Metafont / Inputs / ec / exileast.mf < prev    next >
Text File  |  1997-03-16  |  29KB  |  740 lines

  1. % exileast.mf
  2. %
  3. % (c) Copyright 1995, 1996, 1997 J"org Knappen
  4. % (c) Copyright 1990, 1992 Norbert Schwarz
  5. %
  6. % This file is part of ecfonts version 1.0
  7. %
  8. % Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
  9. % copyrite.txt for further information
  10. %
  11. % You find some documentation in ecdoc.tex (needs LaTeX2e)
  12. %
  13. % Content:
  14. %
  15. %   accented lowercase italic letters ("eastern part")
  16. %
  17. %   oct"236", oct"240" .. oct"274"
  18. %
  19. %       oct"236"    d  with bar
  20. %
  21. %       oct"240"    a  with breve
  22. %       oct"241"    a  with ogonek
  23. %       oct"242"    c  with acute
  24. %       oct"243"    c  with hacek
  25. %       oct"244"    d  with comma
  26. %       oct"245"    e  with hacek
  27. %       oct"246"    e  with ogonek
  28. %       oct"247"    g  with breve
  29. %
  30. %       oct"250"    l  with acute
  31. %       oct"251"    l  with komma
  32. %       oct"252"    l  with (polnisches L)
  33. %       oct"253"    n  with acute
  34. %       oct"254"    n  with hacek
  35. %       oct"255"    the letter eng
  36. %       oct"256"    o  with ungarian umlauts
  37. %       oct"257"    r  with acute
  38. %
  39. %       oct"260"    r  with hacek
  40. %       oct"261"    s  with acute
  41. %       oct"262"    s  with hacek
  42. %       oct"263"    s  with cedille
  43. %       oct"264"    t  with comma
  44. %       oct"265"    t  with cedille
  45. %       oct"266"    u  with hungarian umlauts
  46. %       oct"267"    u  with circ
  47. %
  48. %       oct"270"    y with  umlauts
  49. %       oct"271"    z with  acute
  50. %       oct"272"    z with  hacek
  51. %       oct"273"    z with  dot
  52. %       oct"274"    ij
  53.  
  54. version_check(1,0);  % |version_check| was introduced in dc1.3
  55.  
  56. ecchar "Italic letter bar d";
  57. beginchar(oct"236",9u#,asc_height#,0);
  58. italcorr max(1/3x_height#*slant+.5hair#+.5u#,
  59.   h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
  60. adjust_fit(0,0); pickup fine.nib;
  61. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  62. x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  63. x4+.5stem=hround(w-2.5u+.5stem);
  64. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  65. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  66.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  67. x5=x0; x7=w; hook_out(5,6,7);  % closing hook
  68. pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
  69. z5'=z5; top y4=h; filldraw stroke z4e--z5'e;  % stem
  70. sloped_serif.l(4,5',a,1/3,jut,serif_drop);  % serif
  71. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  72. % the bar
  73.   pos8(bar,90); pos9(bar,90);
  74.   x8=x1; % .5[x1,x4];
  75.   x9=x6;
  76.   y8=y9=.5[y.a2-.5slab,y1+.5vair];
  77.   filldraw stroke z8e--z9e;
  78. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  79.  
  80.  
  81.  
  82. ecchar "Italic letter breve a";
  83. beginchar(oct"240",9u#,x_height#+acc_height#,0);
  84. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  85. adjust_fit(0,0); pickup fine.nib;
  86. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  87. pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  88. x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  89. rt x4r=hround(w-2.5u+.5stem);
  90. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  91. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  92.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  93. x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  94. filldraw circ_stroke z4e--z5e;  % stem
  95. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  96. % the accent
  97. lowercase_breve(.5w,0,8,9,10);
  98. penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
  99.  
  100. ecchar "Italic letter a with ogonek"; % from pl_mlk (plfonts)
  101. beginchar(oct"241",9u#,x_height#,the_ogonek_depth#);
  102.  italcorr 1/3x_height#*slant+.5hair#+.5u#;
  103.  adjust_fit(0,0); pickup fine.nib;
  104.  pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  105.  pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
  106.  x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  107.  rt x4r=hround(w-2.5u+.5stem);
  108.  top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  109.  filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  110.   & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  111.  x5=x4; x7=w; hook_out(5,6,7);  % closing hook
  112.  filldraw circ_stroke z4e--z5e;  % stem
  113.  penlabels(0,1,2,3,4,5,6,7);
  114.  path p.l;
  115.  p.l=if skewed: z5l{-u,-x_height}...z6l{right}...{up}z7l
  116.   else: z5l{down}...z6l{right}...{x7-(x5+2.5u),x_height}z7l fi;
  117.  ogonek_breadth=xvair; ogonek_pos=point .9 of p.l;
  118.  put_ogonek(if known ogonek_pen: ogonek_pen else: fine fi);
  119. endchar;
  120.  
  121. ecchar "Italic letter c with acute"; % from pl_mlk (plfonts)
  122. beginchar_twice(oct"242",8u#,x_height#,0);
  123.  italcorr x_height#*slant-u#;
  124.  adjust_fit(0,0); pickup fine.nib;
  125.  pos0(flare,0); pos1(hair,0); pos2(vair,90);
  126.  pos3(curve,180); pos4(vair,270); pos5(hair,320);
  127.  x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
  128.  lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  129.  y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0);  % bulb
  130.  bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
  131.  path p; p=z4{right}..z5..z6;
  132.  filldraw stroke pulled_arc.e(2,3)
  133.   & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  134.  penlabels(0,1,2,3,4,5,6);
  135.  hpos_corr=-.25u; put_accent;
  136. repeat_once;
  137. endchar;
  138.  
  139. ecchar "Italic letter c with hachek"; % from csihachl.mf (csfonts)
  140. beginchar(oct"243",8u#,lc_hachek_height#,0);
  141. italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
  142. adjust_fit(0,0); pickup fine.nib;
  143. pos0(flare,0); pos1(hair,0); pos2(vair,90);
  144. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  145. x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
  146. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  147. y1=.5[bar_height,x_height]; top y2r=x_height+oo; bulb(2,1,0);  % bulb
  148. bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
  149. path p; p=z4{right}..z5..z6;
  150. filldraw stroke pulled_arc.e(2,3)
  151.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  152. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  153. penlabels(0,1,2,3,4,5,6);
  154. lc_hachek_accent(.6[x3,x1]);
  155. endchar;
  156.  
  157.  
  158. ecchar "Italic letter d with hachek"; % from csiothr.mf (csfonts)
  159. beginchar(oct"244",9u#,lc_acute_height#,0);
  160. italcorr max(1/3x_height#*slant+.5hair#+.5u#,
  161.   h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
  162. adjust_fit(0,0); pickup fine.nib;
  163. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  164. x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  165. x4+.5stem=hround(w-2.5u+.5stem);
  166. top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
  167. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  168.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  169. x5=x0; x7=w; hook_out(5,6,7);  % closing hook
  170. pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
  171. z5'=z5; top y4=asc_height; filldraw stroke z4e--z5'e;  % stem
  172. sloped_serif.l(4,5',a,1/3,jut,serif_drop);  % serif
  173. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  174. penlabels(0,1,2,3,4,5,6,7); 
  175. dtl_hachek(x4r+u+.5dot_size)(y4);
  176. endchar;
  177.  
  178. ecchar "Italic letter e with hachek"; % from csihachl.mf (csfonts)
  179. beginchar(oct"245",8u#,lc_hachek_height#,0);
  180. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  181. adjust_fit(0,0); pickup fine.nib;
  182. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  183. pos3(curve,180); pos4(vair,270); pos5(hair,320);
  184. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  185. lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  186. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
  187. top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  188. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  189.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  190. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  191. penlabels(0,1,2,3,4,5,6);
  192. lc_hachek_accent(0.6[x3,x1r]);
  193. endchar;
  194.  
  195.  
  196. ecchar "Italic letter e with ogonek"; % from pl_mlk (plfonts)
  197. beginchar(oct"246",8u#,x_height#,the_ogonek_depth#);
  198.  italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  199.  adjust_fit(0,0); pickup fine.nib;
  200.  pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  201.  pos3(curve,180); pos4(vair,270); pos5(hair,320);
  202.  x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
  203.  lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
  204.  y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  205.  top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
  206.  filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  207.   & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
  208.  penlabels(0,1,2,3,4,5,6);
  209.  path p.r; p.r=pulled_arc.r(3,4)...{direction 1 of p}z5r;
  210.  def the_pen=
  211.   if known ogonek_pen: ogonek_pen else: fine fi
  212.  enddef;
  213.  numeric tt; % the time...
  214.  tt=if hefty: 2.8 else: 2.6 fi;
  215.  join_angle=angle((direction tt of p.r) rotated 180);
  216.  ogonek_breadth=xvair;
  217.  ogonek_pos=point tt of p.r+.5(the_pen-fine)*
  218.   unitvector((direction tt of p.r) rotated 90);
  219.  put_ogonek(the_pen);
  220. endchar;
  221.  
  222. ecchar "Italic letter g with breve";
  223. beginchar(oct"247",8u#,x_height#+acc_height#,desc_depth#);
  224. italcorr x_height#*slant+.5stem#-u#;
  225. adjust_fit(0,0); pickup fine.nib;
  226. pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
  227. x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
  228. x4+.5stem=hround(w-1.5u+.5stem);
  229. top y1r=x_height+oo; bot y3r=0; y0=y2=.5[y1,y3];
  230. filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  231.  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
  232. pos4(stem,0); y4+.5stem=vround .98x_height;
  233. pos5(stem,0); x5=x4; y5=-1/3d;
  234. pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
  235. bot y6r=-d-oo; y8-.5flare=vround -.9d;
  236. lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8);  % bulb
  237. filldraw circ_stroke z4e---z5e...{left}z6e;  % stem and arc
  238. %the accent
  239. lowercase_breve(.5w,0,9,10,11);
  240. math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
  241.  ic#-1/3x_height#*slant);
  242. penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
  243.  
  244.  
  245. ecchar "Italic letter l with acute"; % jk
  246. beginchar_twice(oct"250",4u#,asc_height#,0); 
  247. l_width#:=4u#;
  248. italcorr max(1/3x_height#*slant+.5hair#+.5u#,
  249.  asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
  250. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  251. x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4);  % closing hook
  252. pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
  253. top y1=asc_height; x1=x2; filldraw stroke z1e--z2'e;  % stem
  254. sloped_serif.l(1,2,a,1/3,jut,serif_drop);  % serif
  255. math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4);
  256. put_accent;
  257. repeat_once;
  258. endchar;
  259.  
  260. ecchar "Italic letter l with hachek"; % from csiothrl.mf (csfonts)
  261. beginchar(oct"251",4u#,lc_acute_height#,0);
  262. l_width#:=4u#;
  263. italcorr max(1/3x_height#*slant+.5hair#+.5u#,
  264.  asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
  265. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  266. x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4);  % closing hook
  267. pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
  268. top y1=asc_height; x1=x2; filldraw stroke z1e--z2'e;  % stem
  269. sloped_serif.l(1,2,a,1/3,jut,serif_drop);  % serif
  270. math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4);
  271. dtl_hachek(x1r+u+.5dot_size)(y1);
  272. endchar;
  273.  
  274. ecchar "Italic letter crossed l"; % from pl_mlk (plfonts)
  275. beginchar_twice(oct"252",4u#,asc_height#,0); 
  276.  l_width#:=4u#;
  277.  italcorr max(1/3x_height#*slant+.5hair#+.5u#,asc_height#*slant+.5stem#-2u#);
  278.  charwd_:=charwd; adjust_fit(if monospace:u#,u# else: 0,0 fi);
  279.  pickup fine.nib;
  280.  x2-.5stem=hround(1.5u-.5stem);
  281.  x4=w; hook_out(2,3,4); % closing hook
  282.  pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
  283.  top y1=h; x1=x2; filldraw stroke z1e--z2'e;  % stem
  284.  sloped_serif.l(1,2,a,1/3,jut,serif_drop);  % serif
  285.  penlabels(1,2,3,4);
  286.  if not monospace:
  287.   charwd:=charwd_; adjust_fit(.25u#,if is_bold: .75 fi\\ u#);
  288.  fi
  289. % some funny fonts have an extremally small |jut|:
  290.  numeric l_jut; l_jut=.5stem+max(limit_dist,if hefty: .8 fi\\ jut);
  291.  put_cross(l_jut,1.15l_jut);
  292. repeat_once;
  293. endchar;
  294.  
  295. ecchar "Italic letter n with acute"; % jk, merged from pl and dc \'n
  296. beginchar_twice(oct"253",10u#,x_height#+acc_height#,0);
  297. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  298. adjust_fit(0,0); pickup fine.nib;
  299. x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
  300. if classic_serif:
  301.   top y1=x_height; pos1(stem,0);
  302.   sloped_serif.l(1,2,a,1/3,jut,serif_drop);
  303. else:
  304.   hook_in(0,a,1);  % opening hook
  305. fi
  306. filldraw circ_stroke z2e--z1e;  % left stem
  307. x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4);  % arch
  308. x7=w; hook_out(5,6,7)(skewed);  % closing hook
  309. filldraw stroke z4e{down}..{-u,-x_height}z5e;  % right stem
  310. penlabels(0,a,1,2,3,4,5,6,7);
  311.  hpos_corr=-.5u; put_accent;
  312. repeat_once;
  313. endchar;
  314.  
  315. ecchar "Italic letter n with hachek"; % from csihachl.mf (csfonts)
  316. beginchar(oct"254",10u#,lc_hachek_height#,0);
  317. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  318. adjust_fit(0,0); pickup fine.nib;
  319. x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
  320. if classic_serif:
  321.   top y1=x_height; pos1(stem,0);
  322.   sloped_serif.l(1,2,a,1/3,jut,serif_drop);
  323. else:
  324.   hook_in(0,a,1);  % opening hook
  325. fi
  326. filldraw circ_stroke z2e--z1e;  % left stem
  327. x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4);  % arch
  328. x7=w; hook_out(5,6,7)(skewed);  % closing hook
  329. filldraw stroke z4e{down}..{-u,-x_height}z5e;  % right stem
  330. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  331. penlabels(0,a,1,2,3,4,5,6,7);
  332. lc_hachek_accent(1/2[x1r,x3r]);
  333. endchar;
  334.  
  335.  
  336. ecchar "Italic letter eng";
  337. beginchar(oct"255",10u#,x_height#,desc_depth#);
  338. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  339. adjust_fit(0,0); pickup fine.nib;
  340. x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
  341. if classic_serif:
  342.   top y1=h; pos1(stem,0);
  343.   sloped_serif.l(1,2,a,1/3,jut,serif_drop);
  344. else:
  345.   hook_in(0,a,1);  % opening hook
  346. fi
  347. filldraw circ_stroke z2e--z1e;  % left stem
  348. x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4);  % arch
  349. x7=w; empty_hook_out(5,6,7)(skewed);  % closing hook
  350. filldraw stroke z4e{down}..{-u,-x_height}z5e;  % right stem
  351. %
  352. % j stroke
  353.  pickup tiny.nib; pos8(vair,-90); pos9(hair,-180); pos10(flare,-180);
  354.  x8=.5[x5,x9r]; bot y8r=-d-oo; y9-.5flare=-.88d;
  355.  z9r=z10r; rt x10l=hround(x4r-3u+0.5stem); % floor .75u
  356.  (x,y8r)=whatever[z8l,z5l]; x8r:=max(x,.5[x9r,x8]);
  357.  filldraw stroke z5e{down}...z8e{left};  bulb(8,9,10); % arc and bulb
  358. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  359. penlabels(0,a,1,2,3,4,5,6,7,8,9,10); endchar;
  360.  
  361. ecchar "Italic letter o with double acute";
  362. beginchar(oct"256",9u#,x_height#+acc_height#,0);
  363. italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
  364. adjust_fit(0,0); pickup fine.nib;
  365. pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
  366. x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
  367. top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
  368. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  369.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  370. math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
  371. if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
  372. else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
  373. penlabels(1,2,3,4,7,8); endchar;
  374.  
  375. ecchar "Italic letter r with acute";
  376. beginchar_twice(oct"257",5.5u#+max(1.75u#,flare#),x_height#+acc_height#,0);
  377. italcorr x_height#*slant;
  378. adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); 
  379. pickup fine.nib;
  380. x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
  381. if classic_serif:
  382.   pos2(stem,0);
  383.   y2=1/4x_height; % dito
  384.   x8=x2; pos8(stem,0); top y8=x_height;
  385.   sloped_serif.l(8,3,c,1/3,jut,serif_drop);
  386.   filldraw circ_stroke z8e--z3e;  % left stem
  387. else:
  388.   hook_in(0,1,2);  % opening hook
  389.   filldraw circ_stroke z3e--z2e;  % left stem
  390. fi
  391. pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
  392. x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=x_height+oo;
  393. filldraw stroke z3'e{up}...z4e{right};  % link
  394. y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6);  % bulb
  395. hpos_corr=-.5u; put_accent;
  396. repeat_once;
  397. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
  398. penlabels(0,1,2,3,4,5,6,7,8); endchar;
  399.  
  400.  
  401. ecchar "Italic letter r with hachek"; % from csihachl.mf (csfonts)
  402. beginchar(oct"260",5.5u#+max(1.75u#,flare#),lc_hachek_height#,0);
  403. italcorr x_height#*slant;
  404. adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
  405. x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
  406. if classic_serif:
  407.   pos2(stem,0);
  408.   y2=1/4x_height; % dito
  409.   x2'=x2; pos2'(stem,0); top y2'=x_height;
  410.   sloped_serif.l(2',3,c,1/3,jut,serif_drop);
  411.   filldraw circ_stroke z2'e--z3e;  % left stem
  412. else:
  413.   hook_in(0,1,2);  % opening hook
  414.   filldraw circ_stroke z3e--z2e;  % left stem
  415. fi
  416. pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
  417. x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=x_height+oo;
  418. filldraw stroke z3'e{up}...z4e{right};  % link
  419. y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6);  % bulb
  420. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
  421. penlabels(0,1,2,3,4,5,6); 
  422. if classic_serif: lc_hachek_accent(.5[x2,x4]);
  423. else: lc_hachek_accent(.5[x1,x4]); fi
  424. endchar;
  425.  
  426. ecchar "Italic letter s with acute"; % from pl_mlk (plfonts)
  427. beginchar_twice(oct"261",5.25u#+max(1.75u#,flare#),x_height#,0);
  428.  italcorr x_height#*slant-.5u#;
  429.  adjust_fit(0,0); pickup fine.nib;
  430.  numeric theta; theta=90-angle(40u,h); slope:=-h/40u;  % angle at middle
  431.  pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
  432.  x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
  433.  y0-.5ess=y7l+.55(y2r-y7l-ess);
  434.  lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
  435.  x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
  436.  ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
  437.  ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
  438.  interim superness:=more_super;
  439.  filldraw stroke super_arc.e(2,3) & z3e{down}
  440.   ..z4e---z5e..z6e{down} & super_arc.e(6,7);  % main stroke
  441.  pos1(hair,0); pos10(hround .75[hair,flare],0);
  442.  pos2'(vair,90); z2'=z2;
  443.  pos8(hair,-180); pos9(flare,-180);
  444.  rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
  445.  bulb(2',1,10); bulb(7,8,9);  % bulbs
  446.  penlabels(0,1,2,3,4,5,6,7,8,9,10);
  447.  hpos_corr=-.5u; put_accent;
  448. repeat_once;
  449. endchar;
  450.  
  451. ecchar "Italic letter s with hacek"; % from csihachl.mf (csfonts)
  452. beginchar(oct"262",5.25u#+max(1.75u#,flare#),lc_hachek_height#,0);
  453. italcorr (acc_height#+x_height#)*slant-.5u#;
  454. adjust_fit(0,0); pickup fine.nib;
  455. numeric theta; theta=90-angle(40u,x_height); slope:=-h/40u;  % angle at middle
  456. pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
  457. x2l=x0=x7=.5w; top y2l=x_height+oo; bot y7r=-oo;
  458. y0-.5ess=y7l+.55(y2r-y7l-ess);
  459. lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
  460. x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
  461. ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
  462. ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
  463. interim superness:=more_super;
  464. filldraw stroke super_arc.e(2,3) & z3e{down}
  465.  ..z4e---z5e..z6e{down} & super_arc.e(6,7);  % main stroke
  466. pos1(hair,0); pos10(hround .75[hair,flare],0);
  467. pos2'(vair,90); z2'=z2;
  468. pos8(hair,-180); pos9(flare,-180);
  469. rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps;
  470. y10=.78x_height; y9=.25x_height;
  471. bulb(2',1,10); bulb(7,8,9);  % bulbs
  472. math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10);
  473. lc_hachek_accent(x0);
  474. endchar;
  475.  
  476. ecchar "Italic letter cedilla s";
  477. beginchar(oct"263",5.25u#+max(1.75u#,flare#),x_height#,0.875desc_depth#);
  478. italcorr x_height#*slant-.5u#;
  479. adjust_fit(0,0); pickup fine.nib;
  480. numeric theta; theta=90-angle(40u,x_height); slope:=-h/40u;  % angle at middle
  481. pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
  482. x2l=x0=x7=.5w; top y2l=x_height+oo; bot y7r=-oo;
  483. y0-.5ess=y7l+.55(y2r-y7l-ess);
  484. lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
  485. x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
  486. ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
  487. ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
  488. interim superness:=more_super;
  489. filldraw stroke super_arc.e(2,3) & z3e{down}
  490.  ..z4e---z5e..z6e{down} & super_arc.e(6,7);  % main stroke
  491. pos1(hair,0); pos10(hround .75[hair,flare],0);
  492. pos2'(vair,90); z2'=z2;
  493. pos8(hair,-180); pos9(flare,-180);
  494. rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25x_height;
  495. bulb(2',1,10); bulb(7,8,9);  % bulbs
  496. % the accent
  497. lowercase_cedilla(x7,0,11,12,13,14,15);
  498. math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
  499.  
  500.  
  501. ecchar "Italic letter t with hachek"; % from csiothrl.mf (csfonts)
  502. %beginchar(oct"264",5.5u#,min(asc_height#,10/7x_height#),0);
  503. beginchar(oct"264",5.5u#,lc_acute_height#,0);
  504. italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
  505. adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
  506. pos1(stem,0); lft x1l=hround(2u-.5stem); 
  507. y1+.5stem=min(asc_height,10/7x_height)+oo;
  508. x2=x1; x4=w; hook_out(2,3,4);  % closing hook
  509. if classic_serif:
  510.    filldraw stroke z1e--z2e;  % stem
  511. else:
  512.    filldraw circ_stroke z1e--z2e;  % stem
  513. fi
  514. pickup crisp.nib; pos5(bar,90); pos6(bar,90);
  515. lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
  516. filldraw stroke z5e--z6e;  % crossbar
  517. math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); 
  518. dtl_hachek(x6)(y1+.5dot_size);
  519. endchar;
  520.  
  521. ecchar "Italic letter cedilla t";
  522. beginchar(oct"265",5.5u#,min(asc_height#,10/7x_height#),0.875desc_depth#);
  523. italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
  524. adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
  525. pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
  526. x2=x1; x4=w; hook_out(2,3,4);  % closing hook
  527. if classic_serif:
  528.    filldraw stroke z1e--z2e;  % stem
  529. else:
  530.    filldraw circ_stroke z1e--z2e;  % stem
  531. fi
  532. pickup crisp.nib; pos5(bar,90); pos6(bar,90);
  533. lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
  534. filldraw stroke z5e--z6e;  % crossbar
  535. %
  536. % the accent
  537. lowercase_cedilla(x3,0,7,8,9,10,11);
  538. math_fit(1.25u#-x_height#*slant,ic#);
  539. penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
  540.  
  541. ecchar "Italic letter u with double acute";
  542. beginchar_twice(oct"266",9.5u#,x_height#+acc_height#,0);
  543. italcorr (acc_height#+x_height#)*slant+.5hair#+.5u#;
  544. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  545. if classic_serif:
  546.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  547.    pos2(stem,0);
  548.    top y2=x_height;
  549. else:
  550.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  551.   hook_in(0,1,2)(skewed);  % opening hook
  552. fi
  553. pos2'(stem,-180); z2'=z2;
  554. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  555. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  556. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  557. y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=x_height;
  558. if classic_serif:
  559.   filldraw stroke z2
  560.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  561. else:
  562.   filldraw stroke z2'e{-u,-x_height}
  563.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  564. fi
  565. filldraw circ_stroke z6e--z7e;  % right stem
  566. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  567. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  568. penlabels(0,1,2,3,4,5,6,7,8,9);
  569. if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
  570. else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
  571. repeat_once;
  572. endchar;
  573.  
  574.  
  575. ecchar "Italic u with ring";
  576. beginchar(oct"267",9.5u#,x_height#+acc_height#,0);
  577. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  578. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  579. if classic_serif:
  580.    x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  581.    pos2(stem,0);
  582.    top y2=x_height;
  583. else:
  584.   x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  585.   hook_in(0,1,2)(skewed);  % opening hook
  586. fi
  587. pos2'(stem,-180); z2'=z2;
  588. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  589. pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
  590. x5=x6=x7; x9=w; hook_out(7,8,9);  % closing hook
  591. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  592. if classic_serif:
  593.   filldraw stroke z2
  594.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  595. else:
  596.   filldraw stroke z2'e{-u,-x_height}
  597.    ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  598. fi
  599. filldraw circ_stroke z6e--z7e;  % right stem
  600. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  601. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  602. % the accent
  603. lowercase_circle(.5w,(1/3[x_height,h]+apex_o),10,11,12,13);
  604. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
  605.  
  606. ecchar "Italic letter umlaut y";
  607. beginchar(oct"270",8.5u#,x_height#+acc_height#,desc_depth#);
  608. italcorr x_height#*slant+.5stem#-u#;
  609. adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
  610. x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
  611. if classic_serif:
  612.   pos2(stem,0);
  613.   top y2=x_height;
  614. else:
  615.   hook_in(0,1,2)(skewed);  % opening hook
  616. fi
  617. pos2'(stem,-180); z2'=z2;
  618. pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
  619. pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
  620. pos7(stem,0); pos8(vair,-90);
  621. y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
  622. y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
  623. pos9(hair,-180); pos10(flare,-180); y9=-.5d;
  624. lft x9r=hround(2.75u-.5flare); bulb(8,9,10);  % bulb
  625. filldraw stroke z2'e{-u,-x_height}
  626.  ...super_arc.e(3,4)...{up}z5e; % left stem and arc
  627. filldraw circ_stroke z6e---z7e...{left}z8e;  % right stem and link
  628. if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
  629. %the accent
  630. lowercase_umlaut(0,0,11,12,13,14);
  631. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
  632. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
  633.  
  634. ecchar "Italic letter z with acute"; % use accent from plfonts
  635. beginchar_twice(oct"271",5.5u#+max(1.5u#,stem#),x_height#+acc_height#,0);
  636. italcorr x_height#*slant+.5hair#;
  637. adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
  638. pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
  639. lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
  640. top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
  641. pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
  642. x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
  643. bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
  644. pair p; p=(z4-z5) yscaled 2;
  645. filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e;  % upper bar
  646. filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e;  % lower bar
  647. filldraw stroke z5e{p}..{p}z4e;  % diagonal
  648.  penlabels(1,2,3,4,5,6,7,8);
  649.  hpos_corr=-.5u; put_accent;
  650. repeat_once;
  651. math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
  652. endchar;
  653.  
  654. ecchar "Italic letter z with hachek"; % from csihachl.mf (csfonts)
  655. beginchar(oct"272",5.5u#+max(1.5u#,stem#),lc_hachek_height#,0);
  656. italcorr x_height#*slant+.5hair#;
  657. adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
  658. pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
  659. lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
  660. top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
  661. pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
  662. x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
  663. bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
  664. pair p; p=(z4-z5) yscaled 2;
  665. filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e;  % upper bar
  666. filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e;  % lower bar
  667. filldraw stroke z5e{p}..{p}z4e;  % diagonal
  668. math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
  669. penlabels(1,2,3,4,5,6,7,8);
  670. lc_hachek_accent(1/2[x2,x3]);
  671. endchar;
  672.  
  673. ecchar "Italic letter dot z"; % use accent from plfonts
  674. beginchar_twice(oct"273",5.5u#+max(1.5u#,stem#),x_height#+acc_height#,0);
  675. italcorr x_height#*slant+.5hair#;
  676. adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
  677. pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
  678. lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
  679. top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
  680. pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
  681. x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
  682. bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
  683. pair p; p=(z4-z5) yscaled 2;
  684. filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e;  % upper bar
  685. filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e;  % lower bar
  686. filldraw stroke z5e{p}..{p}z4e;  % diagonal
  687. penlabels(1,2,3,4,5,6,7,8);
  688.  put_dot(fine,flare#);
  689. repeat_once;
  690. math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
  691. endchar;
  692.  
  693. ecchar "Italic letter ij";
  694. beginchar(oct"274",10u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
  695. italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
  696. adjust_fit(0,0); pickup fine.nib;
  697. x0=0; x5=5u; x2=2.5u+.25u; x3=2.5u-.25u;
  698. if classic_serif:
  699.   hook_out(3,4,5)(skewed);  % hooks
  700.   top y2=x_height;
  701.   pos2(stem,0);
  702.   sloped_serif.l(2,3,a,1/3,jut,serif_drop);
  703. else:
  704.   hook_in(0,1,2)(skewed);
  705.   hook_out(3,4,5)(skewed);  % hooks
  706. fi
  707. filldraw stroke z2e--z3e;  % stem
  708. pos8(flare,0); pos9(flare,90);
  709. x8=2.5u if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
  710. if classic_serif: else:
  711.  if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
  712. fi
  713. x8=x9; y8=.5[y9l,y9r]; dot(8,9);  % dot
  714. pickup fine.nib;
  715. x10=5u; x12=x13; pos13(stem,0); lft x13l=hround(w-1.5u-.5stem);
  716. if classic_serif:
  717.   pos14(vair,-90); pos15(hair,-180); pos16(flare,-180);
  718.   bot y13=-1/3d; bot y14r=-d-oo; y16-.5flare=-vround.9d;
  719.   top y12=x_height;
  720.   pos12(stem,0);
  721.   sloped_serif.l(12,13,b,1/3,jut,serif_drop);
  722. else:
  723.   hook_in(10,11,12);  % opening hook
  724.   pos14(vair,-90); pos15(hair,-180); pos16(flare,-180);
  725.   bot y13=-1/3d; bot y14r=-d-oo; y16-.5flare=-vround.9d;
  726. fi
  727. x14=5u+1/3(w-6u); lft x15r=min(hround 4.5u,lft x15r+x14-x15l-eps);
  728. filldraw stroke z12e---z13e...{left}z14e;  % stem and arc
  729. bulb(14,15,16);  % bulb
  730. pos18(flare,0); pos19(flare,90);
  731. rt x18r=rt x12r if not monospace:-.6(h-x_height)*slant fi; top y19r=h+1;
  732. if classic_serif: else:
  733.    if bot y19l-top y11<slab: y19l:=min(y19r-eps,y11+fine+slab); fi
  734. fi
  735. x18=x19; y18=.5[y19l,y19r]; dot(18,19);  % dot
  736. math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
  737. penlabels(0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19); endchar;
  738.  
  739. endinput;
  740.